//#ifndef  APP-PLUS
import { DictParams } from "@/api/interface/dict";
import wx from "weixin-js-sdk";
//#endif

export const useScan = (pageField: DictParams["scanPageField"], setScanValue: Function) => {
  // 是否显示扫码按钮
  let isShow = ref(false);

  // 扫码方法
  const scan = () => {
    if (!isAPP()) {
      wx.scanQRCode({
        needResult: 1, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
        scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码，默认二者都有
        success: function (res) {
          setScanValue(res.resultStr);
        },
        fail: function (response) {
          useGlobalStore().setMessage("请重新登录,在进行扫码获取", "error");
          console.log("调用wx.scanQRCode扫码失败", response);
        }
      });
    } else {
      const mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module");
      mpaasScanModule.mpaasScan(
        {
          // 扫码识别类型，参数可多选，qrCode、barCode，不设置，默认识别所有
          scanType: ["qrCode", "barCode"],
          // 是否隐藏相册，默认false不隐藏
          hideAlbum: false
        },
        ret => {
          // 返回值中，resp_code 表示返回结果值，10：用户取消，11：其他错误，1000：成功
          // 返回值中，resp_message 表示返回结果信息
          // 返回值中，resp_result 表示扫码结果，只有成功才会有返回
          setScanValue(ret.resp_result);
        }
      );
    }
  };

  /**
   * @description: 是否显示扫码按钮
   * @return {*}
   */
  const isDisplayScan = () => {
    systemList().then((data: any[]) => {
      const obj = data.find(item => item.skey === pageField);
      isShow.value = obj?.svalue === "1";
      console.log(isShow.value, "isShow.value");
    });
  };

  onBeforeMount(() => {
    isDisplayScan();
  });

  return {
    scan,
    isShow
  };
};
